A Gentle Introduction to Vulkan for Rendering and Compute Workloads

Abstract

Take your first steps with the Vulkan API, a modern and open graphics API from the Khronos Group. This Tutorial covered the very basics but also more complex applications in the fields of real-time-rendering and GPGPU computing. No prior experience was required. This tutorial was presented in a lecture-only format and required no active coding by the participants. As optional homework, participants were invited to also try out the educational Vulkan framework which was used during the Vulkanised 2023 tutorial, as well as a separate suite of GPU compute coding tasks.

Recording

Notes on command execution order

There has been some confusion about the order of execution of submitted commands during the HPG talk, so I want to add a bit of clarification here.

As chapter “3.2.1. Queue Operation” of the Vulkan 1.3 specs states “The work involved in performing action commands is often allowed to overlap or to be reordered, but doing so must not alter the state to be used by each action command.” This means Vulkan is allowed to reorder certain commands as long as the state is not altered. This is further explained in chapter “7.2. Implicit Synchronization Guarantees” which reads that there are action and state commands which can have different implicit synchronization guarantees.

In short, commands can execute and finish out of order, but some commands have implicit synchronization guarantees e.g., state commands.

Resources

</> Vulkan Launchpad 🚀

</> Vulkan Launchpad Starter 🚀📈

</> Compute Exercises 🧮